package cn.jdy.plugins.web.ytwh;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.jdy.common.constant.GlobalConstant;
import cn.jdy.common.ctrl.BaseCtrl;
import cn.jdy.framework.log.BaseLog;
import cn.jdy.framework.util.StringUtil;
import cn.jdy.platform.entity.ConfValue;
import cn.jdy.platform.service.ConfService;
import cn.jdy.plugins.entity.Productx;
import cn.jdy.plugins.entity.ytwh.YtwhNews;
import cn.jdy.plugins.entity.ytwh.YtwhProductx;
import cn.jdy.plugins.service.ProductxService;
import cn.jdy.plugins.service.ytwh.YtwhproductService;

/**
 * daihu
 * @title 产品控制类
 */
@Controller
@RequestMapping("/ytwhproductx")
public class YtwhProductxCtrl extends BaseCtrl {
  @Autowired
  private YtwhproductService productxService;
  @Autowired
  private ConfService confService;
/**
 * web版获取商品列表
 * @param productx
 * @param key
 * @param columnid
 * @param pid
 * @return
 */
  @RequestMapping("")
  public ModelAndView list(YtwhProductx productx) {
    ModelAndView mv = new ModelAndView("/products/productList.jsp");
    try{
      if(productx.getiDisplayLength() == 0) productx.setiDisplayLength(12);                //默认长度5
      if(productx.getPageNo()<=0)  productx.setPageNo(1);
      //默认页数1
      productx.setiDisplayStart((productx.getPageNo() - 1) * productx.getiDisplayLength());  //显示起始索引
    //  productx.setStatus("0");// 状态 0已发布、1已下架、2审核中、3审核不通过
      //判断是否分类
      if(productx.getBy1()!=null && !",".equals(productx.getBy1())){
    	//判断是否二级分类
        if(productx.getBy1().split(",").length>1){
            productx.setColumnId(Long.valueOf(productx.getBy1().split(",")[1]));
        }
        //获取二级分类的ColumnId
        else{
            productx.setColumnId(Long.valueOf(productx.getBy1().split(",")[0]));
        }
        //获取一级分类的id并且把值赋予ColumnId
        mv.addObject("classlist", confService.findConfValueByPid(Long.valueOf(productx.getBy1().split(",")[0])));
      }
      mv.addObject("dataList", productxService.query(productx));
      mv.addObject("pageNo", productx.getPageNo());
      mv.addObject("size", productx.getiDisplayLength());
      mv.addObject("total", productxService.count(productx));
      mv.addObject("productx", productx);
      mv.addObject("key", productx.getKeyword()); 
    }catch(Exception e){
      BaseLog.e(this.getClass(), "查询异常", e);
    }
    return mv;
  }
  
  @RequestMapping("/{typeid}.html")
	public ModelAndView query(YtwhProductx productx, @PathVariable Long typeid) {
		ModelAndView mv = new ModelAndView("/products/productList.jsp");
		try {
			//襄阳市公安局，需要加入当前时间段周数
			Date datetime = new Date();
			int weekdays = datetime.getDay();
			mv.addObject("weekdays",weekdays);
			
			// 设置分页信息
			if (productx.getiDisplayLength() == 0)
				productx.setiDisplayLength(12); // 默认长度24
			if (productx.getPageNo() <= 0)
				productx.setPageNo(1); // 默认页数1
			productx.setiDisplayStart((productx.getPageNo() - 1)
					* productx.getiDisplayLength()); // 显示起始索引
			//productx.setStatus("1");// 状态 0：无效，1：有效
			// 当关键字不为null并且不为空时，通过关键字全分类模糊查询
			// 反之，查询当前分页状态下的信息
			if (productx.getKeyword() != null && !productx.getKeyword().trim().isEmpty()) {
				mv.addObject("dataList",productxService.queryByLike(productx, productx.getKeyword()));
				mv.addObject("total", productxService.queryByLikeCount(productx, productx.getKeyword()));
			} else {
				productx.setColumnId(typeid);// 新闻分类
				mv.addObject("dataList", productxService.query(productx));
				mv.addObject("total", productxService.count(productx));
			}
			mv.addObject("pageNo", productx.getPageNo());
			mv.addObject("size", productx.getiDisplayLength());
			ConfValue cv = confService.find(typeid); // 获取分类的父id,查询同级分类
			mv.addObject("typeName", cv.getValue0());// 分类的名称 用于 页面导航路径展示
			productx.setCv(cv);
			if (0 == cv.getPid()) {
				mv.addObject("newsClass", null);// 根据大分类 查询小分类 列表
			} else {
				List<ConfValue> plist = confService.queryByType(
						GlobalConstant.TYPE_NEWS, cv.getPid());// 新闻分类
				mv.addObject("newsClass", plist);// 根据大分类 查询小分类 列表
				// ConfValue pcv = confService.find(cv.getPid()); // 查询父分类名称
				// mv.addObject("typeName", pcv.getValue0());// 父分类的名称 用于
				// 页面导航路径展示
			}
			mv.addObject("product", productx);
			mv.addObject("typeid", typeid);
			mv.addObject("key", productx.getKeyword()); 
		} catch (Exception e) {
			BaseLog.e(this.getClass(), "查询产品异常", e);
		}
		return mv;
	}
  /**
   * 产品详情
   * @param id
   * @return
   */
  @RequestMapping("/show-{id}.html")
  public ModelAndView queryDetail(@PathVariable Long id) {
    ModelAndView mv = new ModelAndView("/products/productDetail.jsp");
    mv.addObject("data", id==null||id==0 ? id : this.productxService.find(id));
    return mv;
  }

}
